package com.white.framework.flow;

import com.white.framework.flow.entity.ExecuteResult;

/**
 * 流程节点任务执行器接口
 * 他代表一个任务例如：融资，汇款
 * 是一个操作
 * @author white
 * @create 2020-11-30 16:54
 */
public interface FlowNodeJobExecute<D,M> {

    /**
     * 执行器
     *
     * 该执行器只会执行该节点的任务
     * 对任务的成功或者失败不建议在此处实现
     *
     * @param businessNo 业务单号
     * @param businessDTO 执行这个业务所需的额外数据
     * @return 执行器执行的结果 如果为NULL，默认为停留在该节点，不会继续往下执行
     */
    ExecuteResult<M> execute(String businessNo, D businessDTO);
}
